package com.automotive.can1939.can;

/**
 * J1939 PGN 常量定义
 */
public class J1939Constants {

    // 发动机相关 PGN
    public static final int PGN_EEC1 = 0x00F004; // 电子发动机控制器1 - 发动机转速
    public static final int PGN_EEC2 = 0x00F003; // 电子发动机控制器2 - 油门位置
    public static final int PGN_EEC3 = 0x00F002; // 电子发动机控制器3
    public static final int PGN_ENGINE_TEMPERATURE_1 = 0x00FEEE; // 发动机温度1 - 冷却液温度
    public static final int PGN_AMBIENT_CONDITIONS = 0x00FEF5; // 环境条件 - 环境温度
    public static final int PGN_INTAKE_TEMPERATURE_PRESSURE_1 = 0x00FEF6; // 进气温度/压力1
    public static final int PGN_VEHICLE_ELECTRICAL_POWER_1 = 0x00FEF7; // 车辆电气功率1
    public static final int PGN_FAN_DRIVE = 0x00FEFC; // 风扇驱动

    // 传动系统 PGN
    public static final int PGN_ETC1 = 0x00F005; // 电子传动控制器1 - 输出轴转速
    public static final int PGN_ETC2 = 0x00F009; // 电子传动控制器2
    public static final int PGN_TRANSMISSION_CONFIGURATION = 0x00FE56; // 传动配置

    // 车辆动态 PGN
    public static final int PGN_CRUISE_CONTROL_VEHICLE_SPEED = 0x00FEF1; // 巡航控制/车辆速度
    public static final int PGN_EBC1 = 0x00F001; // 电子制动控制器1 - ABS状态
    public static final int PGN_EBC2 = 0x00F002; // 电子制动控制器2
    public static final int PGN_VEHICLE_POSITION = 0x00FE49; // 车辆位置

    // 仪表和显示 PGN
    public static final int PGN_VEHICLE_DISTANCE = 0x00FEC1; // 车辆总距离
    public static final int PGN_ENGINE_HOURS = 0x00FEE5; // 发动机运行小时数
    public static final int PGN_TIME_DATE = 0x00FEE6; // 时间/日期

    // 诊断 PGN
    public static final int PGN_DIAGNOSTIC_MESSAGE_1 = 0x00FECA; // 诊断消息1 (DM1) - 活动诊断故障码
    public static final int PGN_DIAGNOSTIC_MESSAGE_2 = 0x00FECB; // 诊断消息2 (DM2) - 先前活动的诊断故障码
    public static final int PGN_DIAGNOSTIC_MESSAGE_3 = 0x00FECC; // 诊断消息3 (DM3) - 清除/复位先前活动的诊断故障码

    // 专有 PGN
    public static final int PGN_PROPRIETARY_A = 0x00EF00; // 专有A
    public static final int PGN_PROPRIETARY_B = 0x00FF00; // 专有B
}
